package basics.day13.final_def;

/*
 * final:
 *   1. 类被final修饰不能被继承
 *   2. 成员方法被final修饰不能被子类重写
 *   3. 成员属性被final修饰不能被赋值，但是必须给默认值或者在构造器内赋值
 *   4. 局部变量被final修饰不能被再次赋值
 *   5. 引用类型被final修饰，只是变量地址不能被修改
 * */
public class Person {
    /*
     * 3. 成员属性被final修饰不能被赋值，但是必须给默认值或者在构造器内赋值
     * */
    final int age;

    public Person(int age) {
        this.age = age;
    }

    /*
     * 3. 成员属性被final修饰不能被赋值，但是必须给默认值或者在构造器内赋值
     * */
    int i = 10;

    public void fun() {
        /*
         * 4. 局部变量被final修饰不能被再次赋值
         * */
        final int a = 10;
        // a = 20;

        /*
        * 5. 引用类型被final修饰，只是变量地址不能被修改
        * */
        final int[] c = new int[10];
        // c = new int[20];

    }
}
